There are two files that need to be changed. For some reason, which is beyond me, the macro that forces an identifier to be extended just doesn't make it 29 bits, it makes it 18 bits, which is not right. I changed it in my code, here are my patches.
diff --exclude CVS -uNr linux-2.6.17.7/include/asm-m68knommu/m5253sim.h linux-2.6.17.7.modified/include/asm-m68knommu/m5253sim.h
--- linux-2.6.17.7/include/asm-m68knommu/m5253sim.h 2007-08-17 08:24:36.000000000 -0500
+++ linux-2.6.17.7.modified/include/asm-m68knommu/m5253sim.h 2007-08-02 08:17:16.000000000 -0500
@@ -288,7 +288,7 @@
#define MB_CNT_LENGTH(x) (((x)&0x0F)<<16)
#define MB_CNT_TIMESTAMP(x) ((x)&0xFFFF)
#define MB_ID_STD(x) (((x)&0x07FF)<<18)
-#define MB_ID_EXT(x) ((x)&0x3FFFF)
+#define MB_ID_EXT(x) ((x)&0x1FFFFFFF)
/****************************************************************************/