reviewed by Martin Husemann. while i'm here, use macros for some MD constants (eg. IPL_ZS) as suggested by Havard Eidnes.