>>23086968When the old man shows you how to catch Pokémon, the game needs to render the name as OLD MAN. It does this by loading your name into the RAM bank where wild Pokémon are loaded from so it can restore your name once the old man has finished. This would normally be OK as the game would overwrite this with the wild Pokémon data of the next area you enter, however neither Cinnabar Island nor Route 20 have wild Pokémon in their 'grass' encounter banks, so your name is still there when you Surf the Cinnabar coast. For whatever reason, the game registers coast tiles as grass patches, so it uses the data currently stored in the wild Pokémon encounter bank, which at the moment is still your name. The Pokémon encountered through the glitch (though it's more of an oversight) are therefore based on the Hexadecimal values of the Characters that make up your name.
Now in Gen 1 there were originally 190 Pokémon, however 40 of them were removed in development, leaving blank data which the game reads as Missingno. If a character in yiur name matches the value of a removed Pokémon, the game will call up Missingno. I'm not sure what gives Missingno. its properties, however I believe it may be to do with the removed Pokémon slots being blanked (Missingno. is an error handler for dealing with blank data call ups), causing the game to search get the properties of Missingno. from data is is not supposed to be used as Pokémon, causing the unusual side effects.