If you open physX after the level_load - than this does not happen
This function in ackphysX.h starts the physics simulation loop, and sets up level_load and ent_remove events for automatically registering and unregistering static objects.
Which would mean you are not unreg objects with level_load
try running
http://www.conitec.net/beta/physX_destroy.htmphys_open
level_load
// new levels
physX_destroy ( )
level_load(...new level..)
physX_open
/// next time
physX_destroy ( )
level_load(...new level..)
physX_open
---However I'm troubleshooting guessing
Also while() if(key) level_load .. Will cause many calls to level_load. No matter how fast you touch the "key" the engine will read the key-press many time in one second. Bad code