Im not very proficcent when it comes to loading levels and object, so I'll show you my code. I also only load one object as the whole level, which might be why its so slow.
`Make a new level
function makelevel()
inc level
if level = maxlevel then Complete()
loadLevelData()
`make level
load object "data\maps\level "+str$(level)+".3DS", 1001
position object 1001,0,0,0
if alpha = 1
set alpha mapping on 1001, 75
else
set alpha mapping on 1001, 100
endif
col = NDB_NewtonCreateTreeCollisionfromSerialization("data\maps\level "+str$(level)+".col")
levelbody = NDB_NewtonCreateBody(col)
NDB_BuildMatrix 0, 0, 0, 0, 0, 0
NDB_NewtonBodySetMatrix levelbody
NDB_NewtonReleaseCollision col
NDB_BodySetDBProData levelbody, 1001
NDB_NewtonBodySetDestructorCallback levelbody
makeball()
makegoal()
makesky()
start = 0
endfunction
This is a function I call everytime I complete a level until the variable level = maxlevel. I feel there is a better way to do this though..