Backporting full conersion to FMP to 1.5.2

Contains the following commits from MrTJP's main FMP branch:
01dcb3b210c28c887ec0f23c13dc70a79234efdc,
d04b35127a45db5ac78f161fb9fbf98bd18583a7,
c96bdd913eca9597085ca838252b67b739887d63,
9a4a111644903bc5f37988efa63d46afa8594c63,
2ed2f7e32b957b9cba7a2a9ca520929848480855,
2130bf538bed181a46f49798bd4dc7e2380684b6,
62ea4f3e078ec6f0a469fe444b4c31cdf604b50c,
edfa9ea62c5191767e4fcdd97664faba1cde8488,
5506c8de901084449c5fb232104adcd774b9bba6,
79e4a3b6fac565fe1078e0c1cf7cdb0742a9c038,
ec18f0499f4c18a65a7e1e31547b910b6cd4893c,
b41a55e1def056190c776eb42607490d35ef69d1,
771e5ad582897be707667ef58e1241c1ee329f58,
9e7853c87b30e8b95b44a02c50e4a904db8319b5,
32bc84e4310c8437cf833e0005e80fb4b8e73b08,
53d752a98ad097dfb9834a472305c182eb70143c,
4b8c5a8daf870f0871d81f992c6bc7c315b31864,
adabd92238920e4f3671a8220894b670ac9f3bb8