where there's a will, there's a way.
a JKL describes all the visible surfaces in a level. so does a 3do model. it wouldn't be very difficult to write a tool that re-organizes the way those surfaces are represented; a 3do equivelant of a jkl STILL DESCRIBES the same exact visible/collideable surfaces. same polygons with the same vertices and the same texture coordinates.
i won't entirely disagree with you there..
probably true, but i've never personally seen evidence of this.
one problem with a '3do level,' though, is the massive number of sphere/plane collision checks that normally do not occur in even 'highly adjoined' JKLs such as this one.
to fix the collision-detection, as well as speed up the collision-detection, a non-collidable 3do version of the level could be inserted in the ORIGINAL level; with all its original sectors intact.
then set the geomode of each of the sector's surfaces to 0. turn off visibility traversal through the sectors by changing their adjoin flags. you STILL GET the superfast collision detection of the level geometry itself, and you STILL GET the big performance boost from not traversing the sectors during rendering
it is fact that jk does not support occlusion culling. this is evident because the original LEC door cogs manually turn off adjoin visibility through doorway sectors. also, occlusion culling wouldn't buy a dang thing if the entire level were just one 3do. a 3do cannot cull parts of itself.
if you were implying a type of 'surface culling' i can tell you it would give no performance increase, since a polygon must be fully rasterized in order to see if it is occluded or not.
the goal is not to cut down on the number of surfaces, but the number of sectors that must be traversed. if it's going to end up rendering a huge proportion of the level's surfaces ANYWAY, you might as well not do a computationally expensive test before rendering them all. you're trading off overdraw and algorithm efficiacy.
making a 'level 3do' its not 3do's intended use, but neither is disabling the 'visible adjoins limit' so that levels like this are renderable. there's a reason that there is a maximum number of visible adjoins hard-coded in: performance.