I have used this solution for a while and it works pretty well for all systems. Build an image for acpi single processor, and let sysprep handle the switch to multicore hal if required (I use wmi to get the number of cores on the chip). Oh and btw this switch is actually supported by MS, the switch from the old advanced acpi to acpi single- or multiprocessor is not supported. This will work for most current systems, but if you have any older systems that requires the old Advanced ACPI thing, you can hack the correct HAL files onto the c: drive after deploying the image and before starting minisetup, I do this as part of the process where I add the correct drivers for the model identified from the SMBIOS data. I also kick out any references to Intelppm in the registry. Using this principle I avoid having multiple images for a single OS, it does however require a fair amount of scripting for it to work as described.