Apart from Mach-O binaries themselves there are Fat Binaries which contain multiple architectures which are used to support Universal binaries. These have a different magic number. As far as I can tell the following magic numbers are currently in use in Mach-O (from my own code):
const uint8_t magic1[4] = { 0xce, 0xfa, 0xed, 0xfe }; // 32-bit
const uint8_t magic2[4] = { 0xca, 0xfe, 0xba, 0xbe }; // Universal
const uint8_t magic3[4] = { 0xcf, 0xfa, 0xed, 0xfe }; // 64-bit