yes and no...
There are two problems that require you to be tricky with eventing to pull this off - and no, scripts won't help here.
1) Events only exist on a single map, they can't move between maps.
What you do instead is make one event for the NPC on each map, and condition it to a switch or variable checking a "floor number" or status.
If the NPC is currently on another floor, it will be on a page that is transparent and above player and through ON.
2) Events can't trigger other events, so it won't react if it touches a transfer event on stairs.
Instead, you need a parallel process checking if the event entered such a stair and if yes, that parallel process will change the floor status, making the event on this floor invisible.
Remaining problem is that the other maps don't exist until the player enters them, which means that the NPC on that other map won't move until the player goes there.
You can simulate such movement by having it reappear on the current map after a time, but if the player goes to the other map before that time the NPC will probably stand next to the stairs when the player enters (unless you randomly move it)
A lot of tricky logic, but if you're good at logic this should pose no problems.