After a quick perusal of things, I see some complexity that would probably be beyond the abilities of this NARPTM. For one thing, the mirror involves loading and saving the ViewSet value in conf.ini. Among other multifarious interdependencies.
Perhaps a quick 'n dirty 'hack' would involve nothing more than making both display modes the same. In Main3D.doPreRender3D() we have the following. Fiddling with the four instances of Engine.drawEnv().preRender might do the trick...
private void doPreRender3D(Render render)
{
render.useClearColor(!bDrawLand || (RenderContext.texGetFlags() & 0x20) != 0);
((Actor) (render.getCamera())).pos.getRender(__p, __o);
if(!bRenderMirror && iRenderIndx == 0)
{
SearchlightGeneric.lightPlanesBySearchlights();
Actor actor = ((Actor) (render.getCamera())).pos.base();
if(Actor.isValid(actor))
{
actor.getSpeed(__v);
Camera.SetTargetSpeed((float)((Tuple3d) (__v)).x, (float)((Tuple3d) (__v)).y, (float)((Tuple3d) (__v)).z);
} else
{
Camera.SetTargetSpeed(0.0F, 0.0F, 0.0F);
}
}
Render.enableFog(bEnableFog);
if(bDrawClouds && super.clouds != null)
super.clouds.preRender();
if(bDrawLand)
Engine.land().preRender((float)((Tuple3d) (__p)).z, false);
DrwArray drwarray = bRenderMirror ? drwMirror : drwMaster[iRenderIndx];
Engine.drawEnv().preRender(((Tuple3d) (__p)).x, ((Tuple3d) (__p)).y, ((Tuple3d) (__p)).z, World.MaxVisualDistance, 4, drwarray.drwSolid, drwarray.drwTransp, drwarray.drwShadow, true);
Engine.drawEnv().preRender(((Tuple3d) (__p)).x, ((Tuple3d) (__p)).y, ((Tuple3d) (__p)).z, World.MaxLongVisualDistance, 8, drwarray.drwSolid, drwarray.drwTransp, drwarray.drwShadow, false);
if(!bRenderMirror)
{
shadowPairsAdd(drwarray.drwSolid);
shadowPairsAdd(drwarray.drwTransp);
}
if(!bRenderMirror || viewMirror > 1)
{
Engine.drawEnv().preRender(((Tuple3d) (__p)).x, ((Tuple3d) (__p)).y, ((Tuple3d) (__p)).z, World.MaxStaticVisualDistance, 2, drwarray.drwSolid, drwarray.drwTransp, drwarray.drwShadow, false);
Engine.drawEnv().preRender(((Tuple3d) (__p)).x, ((Tuple3d) (__p)).y, ((Tuple3d) (__p)).z, World.MaxPlateVisualDistance, 1, drwarray.drwSolidPlate, drwarray.drwTranspPlate, drwarray.drwShadowPlate, true);
}
BulletGeneric.preRenderAll();
if(bEnableFog)
Render.enableFog(false);
}