def indented_byte_list_string(byte_list, indent_amount=0, items_per_row=8):
    """
    Return an indented multi-line string representation of a byte list.
    """
    str_list = []
    sub_str_list = []
    
    indent_amount = int(indent_amount)
    
    if indent_amount > 0:
        indent_spaces = ' ' * indent_amount
    else:
        indent_spaces = ''
    
    indent_string = ''.join(('\n', indent_spaces))
    
    for byte in byte_list:
        sub_str_list.append('{0:02X}'.format(byte))
        if len(sub_str_list) == items_per_row:
            str_list.append(' '.join(sub_str_list))
            sub_str_list = []
            
    if sub_str_list:
        str_list.append(' '.join(sub_str_list))
                
    return ''.join((indent_spaces, indent_string.join(str_list)))