Thank you a lot for your answers!
Nyaatrap's framework looks great - this is basically how I'd like this to look/work, and someone provided the solution for the key input in the comments. The only problem is, it looks like it's hard to customize - I'd like a lot of my walls to look different from one another, based on the location - ie., I'd like to have pictures on them that can be clicked and interacted with to serve as both storytelling devices and landmarks for the players, objects on the floor in specified places, and tiles where, if the player enters them, the game goes to the typical VN mode, then goes back (this I guess I could look up in the code of one of the games which use it); another thing is, I'd like the game to take a different set of the corridor pictures, and different music, depending on how many collectables the player has collected.
When it comes to these, they work fine with the top-down view, but they don't have the solution for 1st person view, which requires the same tile to be seen from different perspectives, plus most of the problems I described above still applies. I'm sure if I learned a bit of Python, it'd be possible to do it all, but I'm afraid the learning itself will take much more time than manually coding everything with jumps, so I might end up going with
nananame's solution in the end, and try to learn once I'm done with this project so that the future ones are made better at least (this one is time sensitive, and I still have to do the writing and graphics).
The only other thing that comes to mind, which would be absolutely amazing, is creating a grid for the labyrinth layout, with "0" or a "-" being a wall and any other number/label name,if that's possible, being "walkable", so that the arrows change the position on the grid and then enable a jump to the label corresponding with a tile number, while the clickable arrows on the screen still operate on jumps alone. However, while I have no idea how to achieve this alone, there's also the case of the first person view = several separate labels for one tile, so the script would also need to account for which direction the player came from. I'm currently naming my labels L1a, L1b, L2b, L2c, L65, L65c, L65d, where the a-d letters correspond to that - so maybe if there was a way to take the tile's number from the grid, add "L" at the beginning, and the right letter at the end?... I imagine that could be extremely complicated, though, so I guess I'll go with jumps for now!