Cook's Note: Choose a coconut that's heavy for its size. The "eyes," or the three black spots at the stem of the coconut, should be free of mold, and you should be able to hear the liquid inside the coconut when you shake it.
Preheat the oven to 400 degrees F. Using a corkscrew, open the holes in the coconut's "eyes." Invert the coconut over a bowl or measuring cup and drain. Reserve the coconut water for another use.
Place the coconuts in the oven for 10 to 15 minutes. Carefully remove from oven. Set the coconuts over a dish towel and tap with a hammer or the blunt edge of a knife at its widest point until a fissure opens that will allow you to crack the coconut into large pieces. Use a heavy spoon to scoop out the coconut meat from the hard outer shell. If you're having trouble cracking the coconut or separating it from its shell, return the coconut to the oven for an additional 5 minutes, then try again. Peel the brown outer layer and chop roughly into large cubes.
Combine about 2 cups of the cubed coconut and the rum in a blender. Pulse on high speed until well combined, about 30 seconds at a time. Strain over cheesecloth into a large bowl or measuring cup, extracting as much liquid as possible. Discard the shredded coconut. Add the extracted liquid to the blender and repeat with the remaining coconut, working in batches. You should have 2 to 3 cups of coconut milk.
Combine the extracted coconut milk (or canned coconut milk, if using), egg yolks, condensed milk, evaporated milk, cinnamon, nutmeg and salt, and blend on high speed until frothy. Stir in additional rum to taste (optional). Refrigerate until well chilled. Pour into cold glasses and sprinkle with nutmeg or cinnamon.
Food Network Kitchens suggest caution in consuming raw and lightly-cooked eggs due to the risk of Salmonella or other food-borne illness. To reduce this risk, we recommend you use only fresh, properly-refrigerated, clean, grade A or AA eggs with intact shells, and avoid contact between the yolks or whites and the shell. For recipes that call for eggs that are raw or undercooked when the dish is served use shell eggs that have been treated to destroy