Preheat the oven to 180°C (350°F) and grease two 20 cm round cake pans.
In a blender, add eggs, milk, sugar, vanilla extract, oil, and cocoa powder. Blend for 2 minutes until smooth.
Add flour, baking powder, and baking soda. Blend for about 20 seconds, just until combined.
Divide the batter evenly between the prepared pans.
Bake for 40 minutes or until a toothpick inserted in the center comes out clean.
Remove from the oven, let cool completely, then cut each cake in half horizontally to form four layers.
For the coconut filling, place condensed milk, heavy cream, grated coconut, coconut milk, and butter in a saucepan.
Cook over medium heat, stirring constantly, until thick and firm, similar to brigadeiro consistency. Let cool completely.
For the ganache, combine chocolate and heavy cream and microwave in 30-second intervals, stirring each time, until fully melted and smooth. Let cool.
Prepare the syrup by mixing condensed milk, hot water, and cocoa powder until well combined.
To assemble, line the pan and place one cake layer at the bottom. Moisten with syrup.
Spread a layer of coconut filling, then add another cake layer and moisten again.
Add a generous layer of ganache, then cover with another cake layer and syrup.
Spread the remaining coconut filling, top with the final cake layer, and moisten.
Refrigerate the assembled cake for at least 6 hours.
Finish by covering the cake with the remaining ganache and sprinkle with shredded coconut if desired.
