The Unknown value for Person events below the Pos (X/Y) field appears to control the altitude of the Person event.
Here's what happens in-game when the Unknown value is set to 0 or 3 on a bridge:
(Excuse the speed of the .gifs, Photoshop refuses to import anything higher than 500 frames so I had to double the FPS)
This is unideal if you want this NPC to be on top of the bridge, and not below it. However, setting the Unknown byte to 4 results in this:
You cannot interact with Person events which are on a different layer to that of the player; this includes stepping in the view radius of a Trainer on a different altitude (in that, the battle will not activate).
For clarification, this is how the bridge's movement permissions are laid out:
The following values for this Unknown byte lowers the Person event to the corresponding layer (where the layer # is the movement permission number).
0 - Appears to be Layer C.
1 - Layer 4 (Surfing)
2 - Layer 8 (???)
3 - Layer C (Regular ground)
4 - Layer 10 (appears to work for all layers above this, too (Layer 14, Layer 18, etc.))
If the ground is on layer C, for example, and the Person event has the Unknown value set to 1, for example, the Person event will not display. This could make hiding Person events far easier and flag-efficient, as you could just simply set their altitude to be lower than C, and then make them show with the
spritelevelup command (I haven't actually tested that, but it should work, in theory).
It would be safe to assume that the other Unknown values for
warps and
script events are also this, as they are set to 3 in most cases in vanilla FireRed, too.