def METHOD_NAME(mission_filename: str, layer_index: int = 4) -> Landmap:
    """
    Generate Landmap object from Free Form Polygons drawn in a .miz file.
    Landmap.inclusion_zones are expected to be named Inclusion-<suffix>
    Landmap.exclusion_zones are expected to be named Exclusion-<suffix>
    Landmap.sea_zones are expected to be named Sea-<suffix>
    """
    mission = Mission()
    mission.load_file(mission_filename)
    polygons: dict[str, List[Polygon]] = {"Inclusion": [], "Exclusion": [], "Sea": []}
    for draw_object in mission.drawings.layers[layer_index].objects:
        if type(draw_object) != FreeFormPolygon:
            logging.debug(
                f"Object {draw_object.name} is not a FreeFormPolygon, ignoring"
            )
            continue
        name_split = draw_object.name.split(
            "-"
        )  # names are in the format <Inclusion|Exclusion|Sea>-<suffix>
        zone_type = name_split[0]
        if len(name_split) != 2 or zone_type not in ("Exclusion", "Sea", "Inclusion"):
            logging.debug(
                f"Object name {draw_object.name} does not conform to expected format <Exclusion|Sea|Inclusion>-<suffix>, ignoring"
            )
            continue
        polygon_points = []
        for point in draw_object.points:
            polygon_points.append(
                (point.x + draw_object.position.x, point.y + draw_object.position.y)
            )
        polygons[zone_type].append(Polygon(polygon_points))
    landmap = Landmap(
        inclusion_zones=MultiPolygon(polygons["Inclusion"]),
        exclusion_zones=MultiPolygon(polygons["Exclusion"]),
        sea_zones=MultiPolygon(polygons["Sea"]),
    )
    return landmap