World Partition / World Streaming Documentation Questions

Hello and thanks for your time.
I have a question about the documentation regarding World Partition and Level Streaming.

For World Partition on this page:
World Partition in Unreal Engine | Unreal Engine 5.1 Documentation

Both Blueprint Classes and Level Blueprints are supported in a World Partition world. However, Blueprint Classes are preferred, as any Actors referenced in the Level Blueprint will be marked as Always Loaded.

I’m unclear on what “Blueprint Classes” is referring to. I understand I can make new C++ or Blueprint classes but my main concern is that only the Level can hold references to actors in said level. By Unreal’s design levels can’t be set as reference parameters to pass around their actors either. It seems like no other blueprint could do the functionality of a level blueprint without some complicated registration through game mode or another singleton or a lot of usage of GetAllActorsOfClass().

Second question is here:

Collaborate with Sublevels | Unreal Engine Documentation

You can even have sublevels’ Level Blueprints communicate with each other, so that allows a switch in one sublevel, for instance, to toggle a light in another.

As far as I can see both sublevels and the persistent level can not get references to any actor in any other sublevels, and I can understand why that is but the documentation makes it sound different. There seems to be no natural way for them to talk to each other so the only solution I can see would be a user made (sort of hacky) system where each sublevel has an actor that gathers up all the levels references and then registers itself to the game mode or other singleton so it can be reached from other sublevels or again a lot of usage of GetAllActorsOfClass() and casting.

In both cases this starts to be fighting against how Unreal wants to operate considering it doesn’t allow LevelActorScripts to be parameters, or extended via blueprints and the callback in C++ of DynamicStreamingLevel is a FLatentAction which can’t take params as far as I can tell. It feels like Epic intentionally wants the Level blueprint restricted and not work as a passable object or to be used in an OOP sense, but the documentation makes it sound like this isn’t the case.