You're actually looking at it the wrong way. Both IDENT and VERSION are displaying wrong. This is an endian-ness issue. According to the md3 spec, IDENT is assigned the unsigned little-endian number 860898377 (0x33504449). If you were on a little-endian computer it would have displayed 3PDI when treated as a 32-bit number, because that's actually what the MD3 specifies it as on a little-endian machine. It would only display as IDP3 on a little endian machine if they read it one byte at a time and you converted it one byte at a time.
Since you're on a big-endian computer you need to convert all little-endian numbers to big-endian first. When you convert 0x49445033 to little-endian it will display (correctly) as 3PDI. Or you could treat the IDENT as 4 'octets' and read it 1 byte at a time.