Are there pascal/delphi units for cal3d then? Or are you using c?
How large wil your level's be? Maybe you should look at the items/object in you world as being cal3d and you specify their positons from an xml file. E.g. a tree could be a cal3d mesh and as an bonus you could animate it (having the tree wave in the wind)
This is the way i do it in 3D Adventure Studio (but i do not use cal3d, but milkshape ascii and 3ds) Have a look at the (buggy) editor how an level editor could work.