I've been meaning to make one of these for a while, but while I was messing around with the redstone yesterday with Sidney600 (aka RainbowDash), we came up with a nice and compact design! In technical terms, it is a conditional variable double piston extender block swapper. Thank you, bannanalord :P
Here is Sidney's channel, go check him out: http://www.youtube.com/user/Sidney600MC
From the Redstone Innovation channel, do not hesitate to rate, comment, and subscribe for more content in the future!