1. Preheat oven to 350°. Sift flour, baking powder, and salt into a medium bowl; set aside. In the bowl of a stand mixer, beat sugar, 1/2 cup butter, and peanut butter until creamy. Crack eggs into a small dish (do not beat) and add vanilla. Add eggs to the butter mixture 1 at a time, scraping down the inside of the bowl as needed. Beat in flour mixture and milk in alternating batches, starting and ending with the flour and making sure each addition is fully incorporated before adding the next.
2. Butter and flour 2 round 9-in. cake pans. Divide batter evenly between pans.
3. Bake until golden brown and a toothpick inserted in the center of each cake comes out clean, 25 to 30 minutes.
4. Cool cakes 5 minutes. Invert onto a rack, remove pans, and let cool to room temperature, at least 40 minutes.
5. Make filling: In a medium bowl with an electric mixer, beat together peanut butter, cream cheese, powdered sugar, and milk until smooth and fluffy.
6. Assemble cake: Dollop 1 tbsp. peanut butter filling onto a cake stand (to hold cake in place). Place 1 cake layer on stand. Spread with remaining peanut butter filling. Top with second layer. Starting with the top, then working down the sides, frost cake with fudge frosting. Decorate the top edge with candy pieces and peanuts.