so instead I'm working on a system that subdivdes the maps into zones or sectors...sort of how the Duke3D build engine had sectors, but here each has thier own set of cubemaps...every chacter in the same sector uses the same cubemaps...and when characters move to locations withing the same sector, the same cubemaps are used
That was my conclusion too, using rigid cubes and zones... I never even thought of doing cubes for every character but to make them as a part of the level. You don't even have to use rigid array, you can create points where they are need, iel more densely where you have a change of lightng border etc... then just check runtime which point (and associated cubemap) is the closest one and use that for the moving object. It might pop a little bit but tweening cubemaps is too slow IMO.