Some of the bots in your list are hardly bad bots, like Blekko, that honors robots.txt and hardly belong in a blacklist. At least you would let them know they aren't allowed and they wouldn't keep trying as hard.
If you did a catch-all at the end of your robots.txt that tells all bots not listed that they are denied access, the good bots like MJ12, Blekko, nutch, etc. would all just go away unless they were spoofed UAs.
Of course if they want past your black list just using a random user agent string generator sending something like "Blasjas 2.0" would slip right past it. Most don't even both with that, they use MSIE 9.0's UA and get full access unless you check the headers being sent.
Headers is the real way to spot most of it.