From the mysql docs,
The maximum number of tables that can be referenced in a single join is
61. This also applies to the number of tables that can be referenced in the definition of a view.
Every table (regardless of storage engine) has a maximum row size of 65,535 bytes
There is a hard limit of 4096 columns per table
InnoDB permits up to 1000 columns.]
Is there an explanation of how these numbers have been calculated, or are these all constants assumed during system design?