[Nexus 5X Themes and Apps] chdloc:
Absolutely! The reason for this is shown in the figure I attached to this post. A clipped signal (more than 0 dB of gain, i.e. greater than 84, applied before the DAC) will introduce the distortions that you are seeing and hearing. So again, we have to find an acceptable balance between playback level and audible distortions. We need to apply gain to the earpiece to make it audible next to the main speaker. No way around this, unfortunately...

Also, I thought I'd share the stereo loudspeaker setup on my device (Nexus 5). Both the Nexus 5 and 5x are made by LG so there is a slight chance that they are using the same loudspeakers:

<path name="speaker-stereo">
<!-- chdloc: stereo version. On my device, 10 dB (10 ticks) of level delta between the earpiece and -->
<!-- main loudspeaker seems to be resulting in a balanced stereo image -->
<ctl name="SLIM RX1 MUX" value="AIF1_PB" />
<ctl name="SLIM RX2 MUX" value="AIF1_PB" />
<ctl name="SLIM_0_RX Channels" value="Two" />
<ctl name="SPK DRV Volume" value="6" />
<ctl name="CLASS_H_DSM MUX" value="DSM_HPHL_RX1" />
<ctl name="DAC1 Switch" value="1" />
<!-- enabling IIR filter; coefficients can be modified on-the-fly with tinymix -->
<!-- RX1 plugs into the IIR1 mux and RX2 plugs into the IIR2 mux -->
<ctl name="IIR1 INP1 MUX" value="RX1" />
<ctl name="IIR2 INP1 MUX" value="RX2" />
<!-- biquad1: getting rid of low frequencies: LP Shelf @ 48kHz, fc=300Hz, Gain=-18dB, Q=1 -->
<!-- biquad2: getting rid of high frequencies (reduce higher-frequency non-linear harmonics due to IIR gain): HP Shelf @ 48 kHz, fc=16000Hz, Gain=-18, Q=1 -->
<!-- biquad3: equalizing the two loudspeakers according to the measurements published on XDA ("surround sound" thread); earpiece ONLY: HP Shelf @ 48 kHz, fc=5500Hz, Gain=-5dB, Q=1 -->
<!-- biquad4: equalizing the two loudspeakers according to the measurements published on XDA ("surround sound" thread); earpiece ONLY: HP Shelf @ 48 kHz, fc=8000Hz, Gain=-6dB, Q=1 -->
<ctl name="IIR1 Band1" id="0" value="262667200" />
<ctl name="IIR1 Band1" id="1" value="554622627" />
<ctl name="IIR1 Band1" id="2" value="256594074" />
<ctl name="IIR1 Band1" id="3" value="555115872" />
<ctl name="IIR1 Band1" id="4" value="251319064" />
<ctl name="IIR2 Band1" id="0" value="262667200" />
<ctl name="IIR2 Band1" id="1" value="554622627" />
<ctl name="IIR2 Band1" id="2" value="256594074" />
<ctl name="IIR2 Band1" id="3" value="555115872" />
<ctl name="IIR2 Band1" id="4" value="251319064" />
<ctl name="IIR1 Band2" id="0" value="134939165" />
<ctl name="IIR1 Band2" id="1" value="162743322" />
<ctl name="IIR1 Band2" id="2" value="71463466" />
<ctl name="IIR1 Band2" id="3" value="11173867" />
<ctl name="IIR1 Band2" id="4" value="89536630" />
<ctl name="IIR2 Band2" id="0" value="134939165" />
<ctl name="IIR2 Band2" id="1" value="162743322" />
<ctl name="IIR2 Band2" id="2" value="71463466" />
<ctl name="IIR2 Band2" id="3" value="11173867" />
<ctl name="IIR2 Band2" id="4" value="89536630" />
<ctl name="IIR1 Band3" id="0" value="171124050" />
<ctl name="IIR1 Band3" id="1" value="902758663" />
<ctl name="IIR1 Band3" id="2" value="79502181" />
<ctl name="IIR1 Band3" id="3" value="738693709" />
<ctl name="IIR1 Band3" id="4" value="146255730" />
<ctl name="IIR2 Band3" id="0" value="268435456" />
<ctl name="IIR2 Band3" id="1" value="0" />
<ctl name="IIR2 Band3" id="2" value="0" />
<ctl name="IIR2 Band3" id="3" value="0" />
<ctl name="IIR2 Band3" id="4" value="0" />
<ctl name="IIR1 Band4" id="0" value="168547618" />
<ctl name="IIR1 Band4" id="1" value="991046861" />
<ctl name="IIR1 Band4" id="2" value="61312701" />
<ctl name="IIR1 Band4" id="3" value="835509614" />
<ctl name="IIR1 Band4" id="4" value="116962109" />
<ctl name="IIR2 Band4" id="0" value="268435456" />
<ctl name="IIR2 Band4" id="1" value="0" />
<ctl name="IIR2 Band4" id="2" value="0" />
<ctl name="IIR2 Band4" id="3" value="0" />
<ctl name="IIR2 Band4" id="4" value="0" />
<ctl name="IIR1 Band5" id="0" value="268435456" />
<ctl name="IIR1 Band5" id="1" value="0" />
<ctl name="IIR1 Band5" id="2" value="0" />
<ctl name="IIR1 Band5" id="3" value="0" />
<ctl name="IIR1 Band5" id="4" value="0" />
<ctl name="IIR2 Band5" id="0" value="268435456" />
<ctl name="IIR2 Band5" id="1" value="0" />
<ctl name="IIR2 Band5" id="2" value="0" />
<ctl name="IIR2 Band5" id="3" value="0" />
<ctl name="IIR2 Band5" id="4" value="0" />
<ctl name="IIR1 Enable Band1" value="1" />
<ctl name="IIR1 Enable Band2" value="1" />
<ctl name="IIR1 Enable Band3" value="1" />
<ctl name="IIR1 Enable Band4" value="1" />
<ctl name="IIR1 Enable Band5" value="1" />
<ctl name="IIR2 Enable Band1" value="1" />
<ctl name="IIR2 Enable Band2" value="1" />
<ctl name="IIR2 Enable Band3" value="1" />
<ctl name="IIR2 Enable Band4" value="1" />
<ctl name="IIR2 Enable Band5" value="1" />
<ctl name="IIR1 INP1 Volume" value="84" />
<ctl name="IIR2 INP1 Volume" value="84" />
<!-- IIR1 plugs back into RX1 mux and IIR2 plugs back into RX2 mux -->
<ctl name="RX1 MIX1 INP1" value="IIR1" />
<ctl name="RX7 MIX1 INP1" value="IIR2" />
</path>

<path name="speaker">
<path name="speaker-stereo" />
<ctl name="RX1 Digital Volume" value="89" />
<ctl name="RX7 Digital Volume" value="79" />
</path>

As you can see I have a "true stereo" setup. I created a "speaker-stereo" device to decouple the routing/filtering and the gain for convenience only. You don't have to do that and fold the two devices into the main "speaker" device. Note that especially cheap loudspeakers vary greatly even within a single batch due to manufacturing tolerances. The gain difference between my main loudspeaker and earpiece is 10 dB. It could be very different on your device. On my phone, this setup measures very nicely, see here, and sounds very balanced (albeit somewhat quiet) to me. Maybe this could be a starting point for you guys, too...?