Unerklärliche Probleme mit level_load() hatte ich mehrmals, das Problem war immer und jedes Mal, dass der Aufruf aus einer Entity Funktion oder Entity Event Funktion heraus erfolgte.
Vielleicht lohnt es sich, den Code in dieser Hinsicht abzuklopfen.

Die Lösung war, entweder eine Trigger Variable nutzen und diese in einer globalen Funktion zyklisch pollen, oder sicherstellen, dass die aufrufende Funktion vor dem level_load() keinem Entity mehr zugeordnet ist (aktiv my=null setzen).
Die auftretenden Probleme waren völlig unterschiedlich. Mal hat sich das Player Movement anders verhalten, mal waren die Bounding Boxes im Eimer, dann gab es einfach einen Crash... was auch immer dabei kaputt geht - es geht auf sehr subtile Weise kaputt.