The register map is the same for all S12 devices, the smaller devices are just missing parts of it (the registers are reserved instead of used).
I really don't know why Metrowerks/Freescale made separate register maps for separate derivates, it makes no sense since they are code compatible. Why they wrote the h-file non-standard C is also a good question. If you want to use ANSI C, the only option is to write your own register map.
I'm using my own register map called "s12reg" which is originally for DP256 but works fine with DG256, DG128, C128, C32 etc.