So there is a lot of different design patterns in this area.
- Model View Presenter (mvp)
- Model View View Presenter (mvvp)
- Model View Controller
- Model 2
and so on. Over the years these have been intertwined, mashed together, changed and applied in a wide variety of contexts.
The important bit here, is that the MVC design pattern from 1977 has changed quite a lot, and is no longer the design pattern used by serverside web frameworks. As an example in the original smalltalk implementation the Model would observe the view for changes, which is no longer the case as the serverside simply can't observe html elements in the users browser. Instead if the view changes, the view will send a request to the controller which will then update the view. Again the original MVC implementation is not followed, as an update to the model would imply that all views dependent on the model would be updated.
The modern web frameworks follows a simple three tier architecture also known as a Model 2 architecture.
There are of course examples of real MVC architectures on the web, but these are often client side only, connected to a server which follows the Model 2 architecture, as the views are xml and json, and not observed for changes.
Examples of client side pure mvc architectures are Sencha Touch and Sproutcore.
If you have MVC in the browser, mvc like on the server, and mvc like as the data layer, you have a hierarchial mvc implementation.
Note. I've only talked about web frameworks, other implementations of MVC such as java swing and Flex has other implementation differences.