Google indexes everything. Looking into the contents of a zip file is trivial; one of my text editors does it by default. But google does recognize the
Disallow: *.xtn
format in robots.txt. So you can ask them not to crawl certain filetypes. Or, in the alternative, let them crawl and apply a universal "noindex". Yes, they crawl files they can't index. "Well, how was
I to know that .midi is a sound file? It could have been a disguised page!"
The URL's don't lead directly to downloads, they lead to a preliminary page which has the actual file download link which a user clicks.
And the different download formats each have a page of their own? As long as it's a page, making it extensionless should not be a problem. The only question is how many pages are involved. With just a few, you can make individual RewriteRules-- one set for the preliminary redirects, a second set for the rewrites. But if there are many, it will probably work better to detour to a php script that does the lookup in each direction. The rule itself would then look something like
RewriteCond %{QUERY_STRING} page=(\w+)\.(zip|rar)
RewriteRule ^blahblah/getfile\.php /fixup.php?type=%2&name=%1 [L]
Position this rule among your specific redirects, even though on the surface it's only an internal rewrite. Add a THE_REQUEST condition if the "real" filename-plus-query is the same as the URL that you're redirecting from. If it's different, the condition probably isn't needed.
And then we get into the non-Apache question, which is: If each of those pages is just a link to the download, is there even enough content on the page to be worth indexing? You may be better off slapping a global "noindex" on all of them.