Yes, implementation is easy but my question is how it should be done in a way that conforms to the intention of the framework code. A "recommended good solution".
What about using a project preference?
It needs the method PasteUpMorph buildWorldMenu: evt from May 2000
buildWorldMenu: evt ^(TheWorldMenu new world: self project: (self project ifNil: [Project current]) "mvc??" hand: evt hand) buildWorldMenu.
to be replaced with
buildWorldMenu: evt |project worldMenuClassSymbol|
project := self project ifNil: [Project current] "mvc??".
worldMenuClassSymbol := project projectPreferenceFlagDictionary at: #worldMenuClassSymbol ifAbsent: [#TheWorldMenu].
^((Smalltalk at: worldMenuClassSymbol) new world: self project: project hand: evt hand) buildWorldMenu.
Detailed description: http://wiki.squeak.org/squeak/1047