Why does TSoftObjectPtr display as a list of levels?

I’m not 100% sure, but this could be that the LoadLevelInstance function uses TSoftObjectPtr as one of the variables. This means that when the variable is selected in the blueprints, only a type of UWorld will be usable in the list, and therefore will only show those.

I believe it is similar to using:

UPROPERTY(BlueprintReadOnly)
UTexture* SomeTexture;

In blueprints, this will only give you the option of choosing a texture, rather than everything in content. Soft pointers I believe just hold a reference to the object, rather than the object itself, so it probably uses the name to search for the level and load that when you call the load level funciton.