Preheat oven to 350°F.
In the bowl of a stand mixer, using the paddle attachment on medium-high speed, cream together butter, sugar, salt, baking powder and vanilla until fluffy and light colored (about 5 minutes).
Add eggs one at a time until incorporated (adding only the yolk of the third egg). Scrape down sides as needed.
With the mixer on low, add one third of the flour, then half the milk, then another third of the flour, the rest of the milk and finally the remaining flour. Scrape down sides as needed.
Pour into a cupcake tin with cupcake liners. Each liner should be about 3/4 full of batter.
Bake cupcakes for 16-18 minutes or until a toothpick inserted in the center comes out clean.
Cool cupcakes completely before moving on to the next steps.
When cupcakes have cooled, hollow out a small hole in the center (using a cupcake corer or a small sharp knife). Fill each hole with mini M&Ms.
Prepare frosting by using an electric mixer to cream together all frosting ingredients until smooth and fluffy. Pipe frosting onto cupcakes, decorate with sprinkles if desired, and serve immediately.
Note: Serving immediately is recommended because the M&M’s soak up some moisture and lose their crunch after being inside of the cupcakes. Feel free to make cupcakes a day ahead and fill and frost immediately before serving.