Hi,
It is indeed a hard limit by the engine. According to this discussion, it is limited to 18 because internally there is a 32-bit bitfield used to represent the channels.
Edit: This also means that it isn’t as easy as increasing these as stability can not be guaranteed. Here’s the docs that mention some items that need to be kept in sync.
The best thing to do that is recommended is to keep collision channels broad and to specify hits utilize something like gameplay tags. Discussion one, and discussion two contain information regarding these recommendations.
Please let me know if the information is suitable, thank you!
Regards