Before I go too far off ... do you understand what a nametable is? What mirroring is? We have some articles on the wiki which hopefully will help, if not:
nesdevwiki:Mirroring and
nesdevwiki:PPU nametables.
From an EE point of view:
Mapper 95 connects what
would have been CHR A15 instead to "CIRAM" (= nametable) A10. The N108 (& MMC3) drives values from its first six registers depending on the instantaneous state of PPU A10, A11, & A12 (but not A13 — that's why this works!)
So when the PPU is fetching from $0000-$07FF or $2000-$27FF (because it's not connected to A13), it drives the CHR ROM (and also CIRAM A10) according to the contents of register 0.
Similarly, when it's fetching from $0800-$0FFF or $2800-$2FFF, it drives the CHR ROM (and CIRAM A10) according to the contents of register 1.
This means that there are four possible ways that the NES's two nametables can be combined:
[R0] & $20 = 0 and [R1] & $20 = 0 → CIRAM A10 is always 0, regardless of PPU A10, A11
[R0] & $20 = $20 and [R1] & $20 = $20 → CIRAM A10 is always 1, regardless
[R0] & $20 = 0 and [R1] & $20 = $20 → effectively, CIRAM A10 is connected to PPU A11
[R0] & $20 = $20 and [R1] & $20 = 0 → effectively, CIRAM A10 is connected to NOT PPU A11
Mapper 118 is the exact same idea.... it's just that they used the pin that's usually connected to CHR A17 instead to CIRAM A10. So the bit becomes $80 (because the eight bits in the register normally correspond to CHR A17..A10).