To make the cake: Preheat the oven to 350°F with a rack in the center. Spray three 8” x 2” or two 9” x 2” round cake pans with non-stick cooking spray; line the bottom of the pans with parchment rounds and spray the parchment, optional.
In a small bowl, combine the flour, salt, and baking powder. Set aside.
In a large mixing bowl, either using an electric hand mixer or a stand mixer with whisk attachment, beat the eggs, sugar, vanilla, and almond extract, if using, until thickened and light gold in color, about 2 minutes at medium-high speed. If your stand mixer doesn’t have a whisk attachment, beat for 5 minutes using the paddle attachment. The batter should fall in thick ribbons from the beaters, whisk, or paddle.
Add the dry ingredients to the mixture in the bowl and mix — by hand or on low speed of a mixer — just enough to combine. Scrape the bottom and sides of the bowl, then mix again briefly, to fully incorporate any residual flour or sticky bits.
In a saucepan set over medium heat or in the microwave, bring the milk just to a simmer. Remove the pan from the heat and add the butter and oil, stirring by hand until the butter has melted.
Slowly mix the hot milk-butter-oil mixture into the batter, stirring on low speed of a mixer until everything is well combined. Scrape the bowl and mix briefly, just until smooth.
Divide the batter evenly between the pans. You’ll use about 2 ¾ cups (about 580g) for each pan if you’re using two pans and slightly more than 1 ¾ cup (390 grams) for each pan if you’re using three pans.
Bake the cakes until a toothpick inserted into the center comes out clean and the top feels set, 21 to 26 minutes for two 9” pans, or 18 to 22 minutes for three 8” pans; a digital thermometer inserted into the center of the cakes should read 205°F. Remove the cakes from the oven, carefully loosen the edges, and allow them to cool for 15 minutes in the pans. Then turn them out of the pans and transfer them to a rack, right-side up, to cool to room temperature.
To make the frosting: In a large mixing bowl or the bowl of your stand mixer, stir together - by hand or mixer - the cocoa powder, 1 cup (113g) of the confectioners’ sugar, and the salt. Stir in the water and vanilla, scraping the bowl if necessary.
Add the butter and remaining confectioners’ sugar, stirring to combine. Using an electric hand mixer or a stand mixer with paddle attachment, beat the frosting at medium-high speed for 1 to 2 minutes, until lightened in color and fluffy, stopping halfway through to scrape the bottom and sides of the bowl.
To assemble the cake: Place one of the cake layers on a serving plate; tuck pieces of waxed or parchment paper underneath the edge of the cake to keep the plate clean. Spread the bottom layer with about 1 cup of frosting, enough to make a ¼”-thick layer. Center the second layer bottom-side up (for a flat top) over the frosted layer and press gently to set it in place. Repeat with third layer if using.
If your schedule permits, place the cake in the refrigerator or freezer, uncovered, for at least 30 minutes (or up to 2 hours) to firm it up. This will make the layers less likely to slide around as you work, and the cake won’t shed crumbs as you frost. If you’re pressed for time, you can skip this step.
To finish the cake: For the best-looking cake, do the frosting in two steps. First, spread a very thin layer of frosting around the sides and across the top; this is called a crumb coat. You should be able to see the cake through the frosting in spots, it’s that thin. Refrigerate the cake for 20 minutes to let this layer set. Again, skip this step if time is a factor.
Once the cake is chilled, use the remaining frosting to coat it thoroughly and evenly.
Store the cake, covered, at room temperature, or in the refrigerator if your kitchen is hot. Let it come to room temperature before serving.
Storage information: The cake will keep at room temperature, covered with a cake cover, for up to three days; in the refrigerator, covered, for up to one week, or in the freezer, well wrapped, for up to one month.