Your problem with the green caught my attention as something SVG filter effects could deal with. I know you are using Asymptote, not SVG, but I decided to try anyway.
Code:
<filter
inkscape:collect="always"
id="filter5355"
width="1.3999999999999999"
height="1.3999999999999999"
x="-0.20000000000000001"
y="-0.20000000000000001">
<feTurbulence
id="feTurbulence5365"
result="result2"
baseFrequency="0.25"
type="fractalNoise"
numOctaves="4" />
<feFlood
id="feFlood5394"
flood-color="rgb(255,255,255)"
result="result3"
in="SourceGraphic" />
<feDisplacementMap
id="feDisplacementMap5363"
in2="result2"
in="SourceGraphic"
scale="4"
yChannelSelector="G" />
<feGaussianBlur
stdDeviation="0.80000000000000004"
id="feGaussianBlur5367"
result="result5" />
<feColorMatrix
id="feColorMatrix5533"
in="result2"
result="result6"
type="matrix"
values="1 0 0 0 0.5 0 0.5 0 0 0.5 0 0 0.5 0 0 0 0 0 0.6 0 " />
<feComposite
id="feComposite5392"
operator="out"
in2="result6"
in="result5"
result="result7" />
<feMerge
id="feMerge5541">
<feMergeNode
inkscape:collect="always"
id="feMergeNode5545"
in="result3" />
<feMergeNode
inkscape:collect="always"
id="feMergeNode5547"
in="result7" />
</feMerge>
<feBlend
inkscape:collect="always"
mode="multiply"
in2="BackgroundImage"
id="feBlend5357"
result="result1" />
</filter>
map..png