Prep the pan: Line a 12-cup muffin tin with paper liners. Preheat oven to 350°F (175°C).
Mix dry ingredients: In a bowl, whisk 1 cup all-purpose flour, 2 tablespoons cornstarch, 1½ teaspoons baking powder, and ¼ teaspoon fine salt.
Beat eggs and sugar: In a separate large bowl, use a hand mixer to beat 3 large eggs with ¾ cup granulated sugar on medium-high until pale and thick, about 3–4 minutes.
Add liquids: Mix in ½ cup whole milk, 1 teaspoon vanilla, and 3 tablespoons melted cooled butter (or oil) until just combined.
Combine batter: Gently fold the dry ingredients into the wet just until smooth.
Don’t overmix; you want a tender crumb.
Fill and bake: Divide batter evenly among liners, about ¾ full. Bake 16–20 minutes, until tops spring back and a toothpick comes out clean.
Cool slightly: Let cupcakes cool in the pan 10 minutes, then transfer to a rack. Leave liners on.
Make the tres leches soak: In a measuring cup, whisk ½ cup evaporated milk, ½ cup sweetened condensed milk, and ¼ cup heavy cream.
Add a pinch of salt and a few drops of vanilla if you like.
Poke holes: Using a toothpick or skewer, poke lots of holes all over each warm cupcake. Go deep but keep the cupcake intact.
Soak: Spoon 2–3 tablespoons of the milk mixture over each cupcake in two passes, letting it absorb between spoonfuls. You may have a little soak left; add more to any that look dry.
Chill: Place soaked cupcakes in the fridge, uncovered, for at least 1 hour (up to overnight) to set.
Whip the topping: Beat 1 cup cold heavy cream with 2–3 tablespoons powdered sugar and ½ teaspoon vanilla to soft-medium peaks.
Top and finish: Swirl or pipe whipped cream on each cupcake.
Dust lightly with cinnamon and add berries, lime zest, or toasted coconut if desired.
Serve: Keep chilled until serving. They taste best cold and creamy.