MMC: partial merge with CAF header files

Revert as much as possible without breaking things later
MMC: partial merge with CAF

Revert as much as possible without breaking things later