Your goal is to scale the application and I think the way is to change the multi-tenancy to store the tenant id in each relevant table as well as indexes on that column for every table since the majority of queries will have tenant_id.
The load balancing part depends on what your app is doing, you could segment web traffic based on URL or whatever per tenant to different servers. Or all traffic goes to all servers and scope when using DB is the tenant_id, then you treat all traffic the same and the load balancer just ensures even-ish traffic across a pool of web servers.
Says MySQL has no limit on the number of databases, although InnoDB has a limit of 4 billion tables. If you run into that, I guess use a couple servers.
If there's no connection between tenants, you have lots of options. I don't remember if you can easily do replication of individual databases, but even if not, you can replicate the whole thing and then drop databases as needed to separate tenants. You could also run one mysqld process per tenant and move it to a separate machine if needed.
You can write scripts to do bulk updates/queries as long as you can ensure that the table schema remain consistent between each individual DB.