Lightly butter the bottom of a 9-inch square flameproof baking dish. Arrange the bread cubes evenly in the dish. In a large bowl, whisk together the yolks, whole eggs, coconut milk, cream of coconut, salt, nutmeg and mace. Stir in 1 cup of the coconut flakes. Pour the custard over the bread cubes, pressing the bread cubes gently to soak up the custard. Let the mixture stand for 1 hour, covered, in the refrigerator.
Preheat the oven to 325º.
Sprinkle the top of the pudding with the remaining 1/2 cup coconut flakes. Cover the baking dish with foil, poking a few holes in the top to release the steam. Put the baking dish into a roasting pan on the oven rack. Pour hot water into the roasting pan to come halfway up the sides of the baking dish. Bake until the pudding is firm to the touch, about 1 hour and 15 minutes. Remove the foil and bake for 15 minutes more. Remove the baking dish from the water bath and run it under the broiler, at least 4 inches from the heat, until golden, 1 to 2 minutes. Let the pudding cool completely. Cover tightly with plastic wrap and refrigerate.
Pour the sauce over individual pudding servings, as desired. Top with toasted coconut and serve.
Chocolate Velvet Sauce:
Make the chocolate sauce right before serving the pudding. Put the chocolate chips in a medium heatproof bowl. In a small saucepan, bring the cream to a simmer over low heat; immediately remove it from the heat and pour it over the chocolate chips. Whisk until smooth.
The chocolate sauce can be reheated in a saucepan over low heat. Add more cream, 1 tablespoon at a time as needed, to return it to the desired consistency.