After a lot of research and experimentation, I was able to get ALSA to upmix stereo to 5.1 surround sound the way I want it.
However, my problem is now that I can't properly play mono sources (the single channel will be mapped to the left output channel and the right output channel will be silent), nor can I play sources that already have 6 channels, as everything aside from the first two channels will be discarded.
Up to now I have solved this problem by manually swapping out .asoundrc files in my home directory based on what kind of audio I want to play, but this seems excessively.
While there are a lot of questions and answers available to make upmixing itself work, none of the sample configurations I have found so far solve the above problem.
Is there any way to make this work, and if so, how?