Grate the coconut meat and squeeze out milk from 2 coconuts. Save 3/4 cup of the first milk squeezed out (1st extraction) for topping. Dilute the rest of the coconut milk to make 3 1/2 cups. You can use 1 can (12 ounces) frozen coconut milk, saving 3/4 cup of the thick milk for topping and diluting the rest with water to make 3 1/2 cups.
Boil rice and coconut milk in a heavy pot stirring constantly to keep from burning for about 15 to 20 minutes. When the rice is done and almost dry, lower the heat. Add the sugar and butter. Mix well and set aside. When cool, add the egg.
Spread the rice mixture in a well buttered Pyrex dish (11 3/4 x 7 1/2 x 1 3/4 inch). Bake in a preheated 300 degree oven for 20 minutes.
To make latik as topping: Combine all topping ingredients in a heavy saucepan and cook over low heat stirring constantly until thick (about 15 minutes). Pour topping over rice mixture in dish. Increase oven heat to 350 degrees. Bake until top is brown (about 15 minutes).