make platform register array templates easier to understand

and delete a lot of now unused mpl code in the process
simplify element offset calculations, fix ExtI register def
update linker script and main.cpp