Mix and sieve together baking powder and low protein flour.
Combine butter, sugar, salt and vanilla in a mixing bowl, then beat over medium speed until light and fluffy.
Add in egg yolks gradually, beat until fully combined before adding another.
Add in ¼ part of sieved flour, mix until combined.
Add in ¼ part of milk, mix until combined.
Repeat the same steps until all flour and milk have been added, the continue folding until the batter is well mixed.
Preheat oven to 160°C/320°F (you may add a tray of water in the oven to increase the humidity, which can help preventing the cake surface from cracking).
In another clean mixing bowl, whisk egg whites until soft peak.
Add in sugar gradually, continue whisking until stiff peak (the peaks will point straight up and hold).
Continue whisking slowly for 1 minute to reduce the size of air bubbles (to reduce the holes in cake).
Add ⅓ part of meringue to batter, mix gently using balloon whisk.
Divide the remaining meringue into 2 batches, fold in gently using rubber spatula until well mixed.
Take out 300 g of batter, sieve in cocoa powder and mix well.
Pour plain batter and cocoa batter alternatively into an 8″ (20-cm) square baking pan (greased and lined).
Swirl the batter using icing spatula to create a marble effect, then drop the baking pan on table for 3-4 times to burst large air bubbles.
Bake at 160°C/320°F for 45 minutes, then increase to 180°C/355°F and continue baking for 10-15 minutes, or until fully cooked. (Reminder: The heat for different oven is different, the suggested time is only for reference, adjust the baking time base on your oven if necessary.)
The cake is done when the wooden stick inserted in the center of the cake comes out clean.
Let the cake cools in the baking pan for 10 minutes before unmoulding.
After unmoulding, let the cake cools on wire rack for 30-35 minutes before serving.