Prepare the Brigadeiro Filling and Frosting: Whisk the sweetened condensed milk, cocoa powder, and the corn starch in a medium bowl until combined. Pour into a no-stick wide saucepan. Then, mix in the half-and-half/heavy cream and butter. It is crucial that your pan has at least 2 inches of free space on top, allowing the mixture to expand as it cooks.
Cook the mixture over medium-low heat, stirring constantly with a wooden spoon while scraping the sides of the pan down. The mixture has to reach a thick, pudding-like consistency, or 195-200 degrees F. It takes about 20-25 minutes. Pour the hot brigadeiro mixture into a heat-proof bowl, cover with plastic wrap (plastic has to touch the top of the mixture, helping to avoid creating a “crust”), and let it cool at room temp for about 1-2 hours or until cool to the touch. Place in the fridge to chill for at least 1-2 hours.
Meanwhile, make the cake. Preheat oven to 350 degrees F. Spray or grease 3 (8-inch) round cake pans, line the bottom of each with parchment paper, spray/grease again and reserve. Mix in the dry ingredients: sifted flour, the cocoa powder, the baking powder, and the baking soda in a bowl. Set aside. In the bowl of an electric mixer (with a paddle attachment), whisk in the oil, butter, and sugar just until creamy, about 2 minutes.
Add the vanilla extract and the eggs, one at a time, beating on medium speed just until combined. Do not overmix! Scrape the sides of the bowl when needed. Next, using low speed, add the dry ingredient mixture to the egg-oil mixture in three parts, alternating with the milk. You must begin and end with flour (it will be 3 additions of flour and 2 of milk) until the cake batter is fully combined.
Divide the batter equally into the 3 greased pans and bake until a toothpick inserted in the center comes out slightly crumbly, about 30-35 minutes. Place the cake pans onto a rack and let it cool for about 10 minutes. Next, unmold cakes onto serving plates and let them cool on the rack.
Assemble the brigadeiro cake: Spread a little bit of the chilled brigadeiro filling/frosting onto a cake stand or platter where the cake will sit on. Then, place one cake layer flat side up. Spread about 1 1/2 cups of the brigadeiro filling onto the cake layer. Place the second cake layer on top, flat side up, and spread another 1 1/2 cups of brigadeiro filing over the second layer.
Place the third cake layer, flat side up, and then evenly spread the remaining brigadeiro mixture-- but this time both on top of the cake and on the sides of the layered cake. To avoid a mess, place the cake stand or platter into a large baking sheet and decorate with sprinkles by pressing them on the sides of the cake and if desired, on top as well.
The sprinkles will fall into the baking sheet and you can pick them up and use to decorate the cake. If you would like to, you may garnish the top of the cake with brigadeiros (chocolate fudge balls). You can also pipe the frosting instead, decorating in different ways. If you don’t want to use brigadeiros on top, you may use fresh strawberries or chocolate-covered strawberries.