I mean they're assembly code TO TELEPORT.
All NPC animations are within the code themselves. If you want to edit all teleporting codes, you'd have to edit them separately.
Here's a few teleporting entities:
NPC067: Misery, Teleporting, In: 0x04345E0
NPC112: Quote, Teleporting, Out, 0x043D0A0
NPC113: Quote, Teleporting, In, 0x043D320
NPC144: Toroko, Teleporting, In, 0x0444230
NPC280: Sue, Teleporting, In: 0x045E110
That's about it. All animations are within the NPC AIs, so have fun looking through that
I mean they're assembly code TO TELEPORT.
Wait, why am I so dumb? I could just be looking at the code in olly and figuring it myself.
So new question, why does every NPC use local variables when you could just mov the numbers directly?
Okay, new question, new answer. I'm pretty sure Cave Story was written in C or C++ or C# or something shifty like that, so that code is incredibly slow and inefficient. If you want to, you can optimise the codes with Local Variables, usually used for framerects.
In fact, here's another example of inefficient code that is in the game:
MOV EAX, DWORD [EBP+8]
MOV ECX, DWORD [EAX+78]
ADD ECX, 1
MOV EDX, DWORD [EBP+8]
MOV DWORD [EDX+78], ECX
MOV ECX, DWORD [EBP+8]
MOV DWORD [ECX+74], 0
MOV EDX, DWORD [EBP+8]
MOV DWORD [EDX+70], 0
MOV EAX, DWORD [EBP+8]
MOV DWORD [EAX+68], 0
MOV ECX, DWORD [EBP+8]
MOV DWORD [ECX+6C], 0
JMP {END OF CODE} (Not even JMP SHORT!)
^This is EXTREMELY inefficient. The below code does exactly the same:
SUB ECX, ECX
MOV EAX, DWORD [EBP+8]
INC DWORD [EAX+78]
MOV DWORD [EAX+74], ECX
MOV DWORD [EAX+70], ECX
MOV DWORD [EAX+6C], ECX
MOV DWORD [EAX+68], ECX
LEAVE
RETN