

They cut it down to 151 Pokemon, but there were still placeholder values in the other 39 spaces. Originally there were going to be 190 Pokemon, but some of them got cut out or saved for later generations. In first gen, each Pokemon had a designated hex value from 0x00 to 0xFF, or from 0 to 255. I've dabbled in ASM-level romhacking of Pokemon Red, and I've learned a few interesting things about Missingno while doing it. This allows for a related glitch where you go to the Safari Zone, leave, then Fly to Cinnabar and surf up and down the coast to encounter Safari Zone pokemon in regular battles. That's why different people run into different pokemon while executing the glitch. In the Old Man glitch, the native pokemon are dictated by your name. So in those four tiles, whatever pokemon is native to the last area you were in before going to Cinnabar appear. The four tiles west of Cinnabar City are coded improperly they're flagged for pokemon to appear there, but there's no data there for which pokemon are native to those tiles. When you go to a new zone, the native pokemon overwrite your name, but all is well since your name is already restored to its proper memory address. That way they can overwrite it with OLD MAN, then restore your name from memory. When you talk to the Old Man, your character's name gets stored in the memory address for wild pokemon.

For those wondering, Missingno (and the other pokemon that show up when using the glitch) is generated from the HEX values of your character's name.
