This is a sculk based multiplexer that's fairly compact. Apart from this it's fairly easy and fast to build. I'd say it's easier to build than multiplexers i've seen before, so I'm publishing it here
It has a constant, 10 blocks length.
The height is 1 + (2 * outputs count).
Width is 2 * bits of input
That gives us
5x2x10 for 1 bit with 2 outputs
9x4x10 for 2 bits with 4 outputs
17x6x10 for 3 bits with 8 outputs
33x8x10 for 4 bits with 16 outputs
For reference, purple/green wool shows where outputs are processed - 2 blocks per output.
You add more outputs vertically, here I've implemented 4 big-input and 3 outputs variant. If you want more outputs, you just repeat the pattern vertically by adding more levels, for more inputs, you repeat it horizontally.
Red-cyan wool is here to grasp sizing easier.
The way how it works is as follows.
Let's say we have 4 bits of inputs.
Each bit is connected to a trapdor, if bit is true the trapdoor is triggered.
All outputs have 4 sculk sensors (equal to the amount of inputs), when sculks are activated, the pattern of their activation is matched against the pattern hardcoded for given output (kinda how it works regurarily).
What helps us tremendously in comparison to traditional multiplexers is the fact that one trapdoor can trigger all outputs at once without any wiring. Vertical wiring is traditionally very cumbersome in redstone, but here we can just stack sculk sensors vertically and they'll all pick up the signal.