I think the problem with the black rectangle where a door should be, is actually a bug in the game. Someone posted the bug on youtube way back in 2009:
https://www.youtube.com/watch?v=XQuTx-7PlwA&t=81 Note that the known workaround is to set EE/FPU rounding to "Negative" before going near the bottom of the staircase shown around 81 seconds into that youtube video. When you get to the top and open the door and see that it has loaded as usual, you can switch EE/FPU rounding back to "Chop/Zero".
I have just today, found a tiny code change for the US version of the game (SLUS-20318) that I believe fixes this bug.
I describe the pnach for it in a post here:
https://gamefaqs.gamespot.com/boards/431...y/77030786
For the PCSX2 devs:
I don't think PCSX2 is doing anything incorrect in the emulation--I think the issue is just that the PS2 didn't have IEEE-754-compliant floating point, and the x86 chips running PCSX2 do. Its trying to compare player's vertical position with the top of an object's bounding volume (the object being a loading trigger you walk on), and in the emulator with EE/FPU round set to anything other than "Negative", the two floats are bitwise-identical. And its comparing them with c.lt.s instead of c.le.s, so the player is treated as "not inside the box" even though he is exactly standing on the top edge of the box. For most of the trigger volumes in the game, they had a slightly different Y coordinate than the normal floors you walk on, so a "less than" comparison works. And on original PS2 hardware, it apparently worked for the buggy trigger too--probably because the math it did caused some truncation or rounding somewhere which is a little different than IEEE-754, and just by fluke, ended up actually computing a top for the bounding box where this "less than" comparison could succeed. Anyway, my patch changes the comparison to c.le.s and from what I can tell, that area now loads correctly with EE/FPU round set to "Chop/Zero" or "Nearest". I still have more testing to do to confirm it doesn't break anything else in the game, and then I will make an equivalent patch for the Europe version.