I need to get the bR to h8. This must be done via O-O as the R must be on the back rank before the g6 and h7 pawns can be released.
So:
The wN on g8 I've temporarily, and probably against form removed, it's retracted a couple of moves back to whence it came.
Clearly from here f7xg6 and then g6xPh7 have to be retracted leaving the opportunity for black to uncastle. The B on f8 must have been taken by a wN.
Because c2xd3 could have been a very early move no such problem obtaining access for a bR to capture on c1.
The two bN simply need enough moves to move into a capturing position. He can use (g8 - h6 - f5) and (b8 - a6 - b5 - d3) for a total of five. Possibly giving check in the process.
h3, h4, Rh1/2/3 and Ra1/b1 can act as safe waiting moves for white.
White needs to get a N to g8 and one to f8 before being captured, which can't just be straight to g6 as the wP on h7 must already be in-situ, meaning black can't either then castle, nor move to h8.
Quickest way to g8 is four moves (b1 - c3 - d5 - f6 - g8) as it is to f8 (g1 - f3 - d4 - e6 - f8).
This wN must be captured, the quickest possible is still on g6, but it cannot go directly, so needs to be (f8 - e/g6 - f4 - g6) making three moves.
Which makes 11 wN moves to get into these positions. A wN cannot go from f8 to g8 without taking at least five moves due to h7, d7 and e7 being continually unavilable, taking 3N moves to d6 from b1 this would be longer.
Therefore:
4 moves - wNb1 to g8
4 moves - wNg1 to f8
3 moves - wNf8 to g6
2 moves - bNg8 to f5
3 moves - bNb8 to d3
3 moves - wNg8 to b4
4 moves - bNc1 to f8
Total = 23 moves