Why doesn't this normal map work correctly on Android?

I have a normal-mapped quad using Unity’s standard Transparent/Bumped Specular shader. This worked well on Android when I had an albedo texture and a normal map derived from a greyscale heightmap. However, the normal map had obvious artefacts when zoomed in so I created a custom normal map. This looks gorgeous on PC but now on Android (Tegra 2 and Mali 400) the specular highlights are completely overblown and don’t change with different shader ‘shininess’ values. The quad is still clearly bumped but the intensity isn’t gradual.

Attached are the original albedo and height map (design 1) that worked, and the new albedo and normal map (ship 1) that don’t.

I’ve investigated the normal map generated by the heightmap and it has a green component, so I recreated another test (sphere). This also looks perfect in Unity, but not playing on a tablet where there are no specular highlights.

So what is the difference between PC and other device normal maps, and how does one go about making them?

1493072--83464--$ship1_normal.png
1491766--83307--$ship1_albedo 1.png
1493072--83466--$design_1_height.png
1491766--83309--$design_1_albedo.png

Hello, I’m getting about the same issue regarding over shininess on Mali 400. It’s so shiny that the albedo got completely ignored if the object is close enough, though it applies uniformly. Furthest part of the object also got albedo ignored and over shininess. Another identical object that I placed beside that furthest part is looking fine.

Did you find any solution for this? I searched and found out that this is a problem with Mali400 and Tegra 2 & 3 GPUs, but not a single fix that works for me.

Thanks