Really then it's probably best to avoid switching meshes altogether. If I was you, I'd make a plain for every object and position it - then step through a certain amount each loop, and hide the high poly mesh depending on distance from camera.
Here's a little example...
sync on
sync rate 0
`Make a sphere to seed the other objects
make object sphere 1,100
color backdrop rgb(255,0,255)
set image colorkey 255,0,255
position camera 0,0,-110
rotate camera 0,0,0
sync
scn_h=screen height()
scn_w=screen width()
scn_hm=scn_h/2
scn_wm=scn_w/2
get image 1,(scn_w-scn_h)/2,0,scn_w-((scn_w-scn_h)/2),scn_h,1
for n=1 to 1000
if object exist(n)=0 then instance object n,1
rotate object n,0,rnd(360),0
make object plain n+1000,110,110
texture object n+1000,1
set object transparency n+1000,4
hide object n+1000
set object light n+1000,0
x#=rnd(10000)-5000
z#=rnd(10000)-5000
position object n,x#,0,z#
position object n+1000,x#,0,z#
next n
do
rotate camera mousey(),mousex(),0
move camera upkey()-downkey()
camx#=camera position x()
camy#=camera position y()
camz#=camera position z()
for n=1 to 1000
x#=object position x(n)
y#=object position y(n)
z#=object position z(n)
dx#=camx#-x#
dy#=camx#-y#
dz#=camx#-z#
if object visible(n)=1
if dx#>1000 or dx#<-1000 or dy#>1000 or dy#<-1000 or dz#>1000 or dz#<-1000
hide object n : show object n+1000
endif
else
if dx#>1000 or dx#<-1000 or dy#>1000 or dy#<-1000 or dz#>1000 or dz#<-1000
else
hide object n+1000 : show object n
endif
set object to camera orientation n+1000
endif
next n
sync
loop