Looking at RP002-1.0.4, page 55, section 2.8.7, this defines the RX1 Channel Number:
o RX1 Channel Number = Transmit Channel Number modulo
NbChannel, whereNbChannelis the number of active receive channels.
So yes, this is fixed and known.
(A bit interesting: there are 8 downlink channels - would there be situations where there is a different number of active channels than 8 being active? I don’t know. )
Yes, which is why for instance on EU868, TTN prefers to use SF9 as that allows a roughly 8x throughput compared to using the default SF12.