This order is still no good, because entities need to be loaded after systems are started.

I would suggest...

InitialiseCommandSystem();
InitialiseSystems();
LoadEntities();
InitialiseBlockTypeEntities(); // This can be later if desired
CreateWorldEntity();
InitialiseWorld();

Or do you need the world entity available for systems on initialise as well? We may need to have a second initialise() style call for systems after LoadEntities() in that case.