I think the term "3-tier architecture" is ill-defined and outdated because it highlights not the way your code is structured nor does it offer any benefit or drawback from a user perspective. The problem is that it refers to the physical deployment, something that in times of virtualization and distributed computing is hardly meaningful.
"Tier" refers to machines, and since you can typically run and debug your website only using your local dev machine, it can usually be deployed 1-tier. The more relevant question, perhaps, is "what is the maximum number of (logical) machines I can split my application up in?" That number is independent of the actual deployment, and is dictated by the code's structure instead - by the layering. Of course, machines that duplicate another machine (multiple web servers for load balancing) don't count.
The information is still hardly relevant. It suggests that your code separates concerns and might be more scalable than code which does not allow splitting to separate tiers. Another idea is strong decoupling: you can replace one layer w/o touching another one. In practice, that is hardly ever working (e.g. switch from Oracle to MySQL), and solves some outdated problems: "a change of operating system in the presentation tier would only affect the user interface code." (Wikipedia)
All this becomes more ill-defined when you add external SaaS/PaaS products, or third party tools like SolR (a search engine). Is SolR part of the data tier or part of the logic tier? Does your architecture become 4-tier by adding a caching layer? What if your database tier is not one machine, but a cluster of 10 machines?
MVC, on the other hand, refers to the way your code is structured. It's not only a presentation-layer pattern, however: The model does not know the controller, nor the view. MVC separates data, presentation and logic into different layers. Most MVC implementations use Two-Step-View as a presentation-layer pattern, and PageController as a controller pattern. A FrontController usually exists as well and handles all requests before delegating to the respective PageController - but the key is that the model does not know all this.
I'd suggest to drop the notion of "n-tier architecture" altogether.