Is there a limit on number of tables which can be created in a MySql database? Is this limit engine specific? For MyISAM?
It is engine specific. InnoDB I think supports 2 billion tables across the tablespace. MyIsam does not place any limit on the number of tables, you will be limited though by things like the inodes in the underlying filesystem or limits on the operating system.
On a practical level I'd expect that the performance of your application would collapse before you reached the limits.