The underlying foundation of this component is the CATransform3D matrix from CoreAnimation framework. Applying the correct 3D transform to each of the CALayers you can get a 3D illusion from 2D images. More details on the topic can be found here: Core Animation: 3D perspective
You can get the source code from my bitbucket repository: https://bitbucket.org/javieralonso/japanoview/
Special thanks to Russ Woodman from Remedy Panoramic Design for his permission to use his photos for the sample project.
Update: it now supports hotspots.