Since Birdo is a basegame enemy, you need to reprogram its behaviour from scratch, and then just make it fire a different NPC/fire NPCs differently.
A couple important resources, there:
https://www.youtube.com/watch?v=LsT7ItnnVzY This video goes in depth about how to make an NPC pack. I recommend watching up to like, episode 5 of the lunalua tutorial series for this.
https://wohlsoft.ru/pgewiki/NPC_(class) NPC class code documentation.
https://wohlsoft.ru/pgewiki/SMBX_NPC_AI ... 8ID:_39.29 Documentation of Birdo's behaviour using the variables ai1 thru ai5 from the previous page.
https://github.com/smbx/smbx-legacy-sou ... bas#L11965 This is the SMBX source code for birdo. The variable names are fairly funky, but this is what basically makes the previous page's observation happen. .Special and .Special2 and onwards correspond to ai1-5. The "With npc" clause you can see a few lines below is basically equivalent to our NPC.spawn() function from the 2nd link. That's where the egg is spawned.