I always complained about the buffer switching procedures in Emacs. So I decided to create my own method to do that, and it rocks (to me ;D ).
Check it: https://github.com/geyslan/uzumaki/
And it's also available through MELPA archive: http://melpa.milkbox.net/#/uzumaki
If you do like it, or don't, feel free to do pull requests on git.