Your input profile has to support the intended rendering intent. Your ‘standard color matrix’ won’t do perceptual. That’s what the LUT profile is for… Go back and read the Agyll gamut mapping page…
LittleCMS will fall back to a rendering intent appropriate to the input profile; checking and enforcing something is up to the application developer. I recently had to put that code into rawproc…