Maximum number of TEXT/BLOB columns per table/performance of table with many of them?
If you lump all the column_## columns into a JSON field, you can have a limit of 4GB.

The question of how much gets complicated.  InnoDB has 4 ROW_FORMATs:  REDUNDANT, COMPACT, DYNAMIC, COMPRESSED.  I think you could have 400 columns of VARCHAR(255) or TEXT (or ...) in ROW_FORMAT=DYNAMIC.  That format uses a 20-byte pointer in the record to where the actual text is stored.

If you changed the block size from the default 16KB to 32KB, you could get about 800 columns.  Going to 64KB would hit the limit of 1017 columns (in 5.6.9).  Changing the block size is non trivial, so I don't recommend it.

More Limits.  (Hmmm... maybe I should add your question there.)

These two statements do go together:  "performance of this would be horrendous" and "I do need to filter against the content of the columns".  This is because DYNAMIC has an extra disk fetch for each column you need to 'filter' on.  On the other hand, in some situations (short text, not too many columns, etc), the entire text of some of the columns may be stored inline.

COMPACT might actually be better.  This format tries to keep the text in the record.  But if the record would become bigger than about 8K, it peels off the longer cells for off-block storage.  It will put the first 768 bytes of record inline.  From that, you are limited to about 10 columns.  (Try 12 columns, it will spit at you.)

I believe you will need innodb_file_per_table=1 for DYNAMIC.

How will you be 'filtering'?