EDIT: I’ve gone and rephrased this answer, I think it’s clearer now.
There are two main ways you can adjust volume. You can do it in software or hardware (feel free to look up the difference) but unfortunately since your soundcard has no hardware mixer, you can forget about that.
So with software mixing you can have each piece of software (Mopidy/librespot/shairport) handle the volume themselves or you can get ALSA to handle it for the whole system, or you can have both! The former method is a bit of a mess since you need to provide volume config to each program and they might all do things a bit differently. Furthermore, they may not all allow you to set an initial volume. Mopidy supports specifying a volume and setting the settings.ini output line as you have done is a way to do that. However, I don’t think librespot exposes a way to set an initial volume for it’s software mixer.
So an alternative is to configure an ALSA softvol plugin which will perform software volume mixing globally for everything going to the audio device. And then you can set an initial volume for that using amixer. In an ideal world you would then configure all the individual programs to use this softvol mixer rather than doing their own software mixing. Mopidy supports this but, again, I don’t think librespot does. So I think you are left the “both” option: each program doing it’s own software mixing and then the ALSA softvol plugin doing some more on top of that. This isn’t a great solution but I think it’s your best bet.
I never got around to integrating this with pimusicbox and setsound.sh but I think it should work OK if you don’t mind hacking things up a bit. I’m not 100% sure if this it totally correct but something like the following in /etc/asound.conf maybe?
You may need to adjust those card numbers for your hardware. Note that /etc/asound.conf gets overwritten by setsound.sh on every boot so you’ll need to prevent that some how. You may have to experiment a bit with this…