Is it possible to have a particular material not use half floats on Mobile?

There’s a define in the shader code (Engine/Shaders/*usf files) FORCE_FLOATS. You could modify Common.usf and so it’s set to 1 rather than 0 when it’s not defined:

#ifndef FORCE_FLOATS
#define FORCE_FLOATS 1
#endif

There’s no way to do that on a per-material basis yet. The best way to do that would be to add code to FHLSLMaterialTranslator::GetMaterialEnvironment to set the define based on an FMaterial property, which would map to a UMaterial checkbox. The ShouldGenerateSphericalParticleNormals() virtual function is an example of how to get to a UMaterial checkbox from the FMaterial.