In a mixing bowl measure and combine all dry ingredients and set aside.
In a medium saucepan over medium-high heat stir together coconut milk, water, and vanilla then add margarine, sugar, and raisins one at a time to the saucepan and stir until the margarine and sugar has dissolved and liquid is heated. Remove from heat and add rum, if using.
Pour 1/2 of the liquids into mixing bowl with dry ingredients and stir until smooth. Add remaining liquid, stirring until there are no lumps of cornmeal and the batter is smooth.
Pour batter into a greased extra-deep 23 centimeter cake pan and stir in coconut flakes then place in preheated 350-degree oven and bake for 30 minutes. Meanwhile, combine all topping ingredients in a bowl and set aside.
Pour topping over pudding and place pan back into the oven for an additional 15 minutes.
Chef note: When you take the pan out of the oven the top will still be gooey. Use a knife to test the pudding. It should be firm under the topping. Place pan on a cooling rack; the pudding will get firmer as it cools.
Serving tip: It’s best to leave the pudding in the pan and slice pieces for serving, especially when it’s warm. Can be eaten warm or cold.