@Kusa555 To add on to what Tom said just remember this,

ipxe.{efi or kpxe} contains all of the common network drivers much like linux or windows OS’ contains all of the common network drivers already built in.

The undionly.kpxe only contains 1 network driver for the undi network protocol that is built into each bios network adapter’s firmware.
The snp.efi and snponly.efi only contain 1 network driver for the snp network protocol built into each uefi network adapter’s firmware.

Boot loaders that end in .pxe, .kpxe, .kkpxe are bios boot loaders
Boot loaders that end in .efi are uefi boot loaders

So what should you use?

For bios, undionly.kpxe
For older uefi system (older than 4 years) use ipxe.efi.
For current uefi systems you may have better utility from snp.efi