it seems a bit unclear after Rxf2
If I'm not mistaken that would be slightly better for white than the main variation: 21. Ng5 Rxf2 22. Ne6+ Kg8 23. Nxd8 Rxc2 24. Bxc2 Rxd8 and the pawn on e7 hangs.
Edit: Alright, 22... Kg8 loses.
How about 29... Nc2? Triple fork.
I thought the same, but If you click solution on the original puzzle and go to Move List, you can see how the game continued.
It looks like both sides missed it, for two moves.